From: Florian Müllner Date: Thu, 13 Jul 2017 13:53:04 +0000 (+0200) Subject: layout: Skip strut computation in the no-monitor case X-Git-Tag: archive/raspbian/50.5-1+rpi1~1^2~1013^2^2~264 X-Git-Url: https://dgit.raspbian.org/%22http://www.example.com/cgi/%22/%22http:/www.example.com/cgi/%22?a=commitdiff_plain;h=4e57b451429141b35632e9da7b1fe3bc92c8dc9b;p=gnome-shell.git layout: Skip strut computation in the no-monitor case It's possible for updateRegions() to be called before monitors have been properly initialized. Instead of throwing an error in that case, just skip the strut computation (that doesn't make sense anyway without a monitor). https://bugzilla.gnome.org/show_bug.cgi?id=781471 --- diff --git a/js/ui/layout.js b/js/ui/layout.js index b1e7f94b0..4c11e1d7a 100644 --- a/js/ui/layout.js +++ b/js/ui/layout.js @@ -969,7 +969,11 @@ const LayoutManager = new Lang.Class({ if (actorData.affectsInputRegion && wantsInputRegion && actorData.actor.get_paint_visibility()) rects.push(new Meta.Rectangle({ x: x, y: y, width: w, height: h })); - if (actorData.affectsStruts) { + let monitor = null; + if (actorData.affectsStruts) + monitor = this.findMonitorForActor(actorData.actor); + + if (monitor) { // Limit struts to the size of the screen let x1 = Math.max(x, 0); let x2 = Math.min(x + w, global.screen_width); @@ -986,7 +990,6 @@ const LayoutManager = new Lang.Class({ // spans the width/height across the middle of the // screen, then we don't create a strut for it at all. - let monitor = this.findMonitorForActor(actorData.actor); let side; if (x1 <= monitor.x && x2 >= monitor.x + monitor.width) { if (y1 <= monitor.y)